package com.sg.model.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sg.framework.common.annotations.OrderFlag;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * @author xxx
 */
@Data
@Accessors(chain = true)
@TableName("oms_tspe_timer_implement_eva_cycle_plan")  //3-2-03定时评价模板执行周期安排表
public class OmsTspeTimerImplementEvaCyclePlan implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 是否要求周期安排
     */
    @TableField(value = "is_req_cyclerrange")
    @Schema(description = "是否要求周期安排")
    private String isReqCyclerrange;
    /**
     * 定时执行周期安排ID
     */
    @TableId(value = "timer_eva_cycle_plan_id", type = IdType.ASSIGN_UUID)
    @NotNull(message = "timerEvaCyclePlanId不能为空")
    private String timerEvaCyclePlanId;
    /**
     * 归属评价模板ID
     */
    @TableField(value = "evaluation_template_id")
    @NotNull(message = "归属评价模板ID不能为空")
    @Schema(description = "归属评价模板ID")
    private String evaluationTemplateId;
    /**
     * 冗余评价主题ID
     */
    @TableField(value = "evaluation_subject_id")
    @NotNull(message = "冗余评价主题ID不能为空")
    @Schema(description = "冗余评价主题ID")
    private String evaluationSubjectId;
    /**
     * 是否完成生成任务
     */
    @TableField(value = "is_complete_add_task")
    @NotNull(message = "是否完成生成任务不能为空")
    @Schema(description = "是否完成生成任务")
    private String isCompleteAddTask;
    /**
     * 是否完成生成任务前置数据
     */
    @TableField(value = "is_complete_pre_task_data")
    @NotNull(message = "是否完成生成任务前置数据不能为空")
    @Schema(description = "是否完成生成任务前置数据")
    private String isCompletePreTaskData;
    /**
     * 是否开启自动考核批次
     */
    @TableField(value = "is_open_atuo_ass_batch")
    @Schema(description = "是否开启自动考核批次")
    private String isOpenAtuoAssBatch;
    /**
     * 自动安排时间
     */
    @TableField(value = "auto_plan_time")
    @NotNull(message = "自动安排时间不能为空")
    @Schema(description = "自动安排时间")
    private Date autoPlanTime;
    /**
     * 是否是汇报
     */
    @TableField(value = "is_report")
    @NotNull(message = "是否是汇报不能为空")
    @Schema(description = "是否是汇报")
    private String isReport;
    /**
     * 目标周期ID
     */
    @TableField(value = "target_cycle_id")
    @NotNull(message = "目标周期ID不能为空")
    @Schema(description = "目标周期ID")
    private String targetCycleId;
    /**
     * 周期ID
     */
    @TableField(value = "cycle_id")
    @NotNull(message = "周期ID不能为空")
    @Schema(description = "周期ID")
    private String cycleId;
    /**
     * 周期名称
     */
    @TableField(value = "cycle_standard_name")
    @NotNull(message = "周期名称不能为空")
    @Schema(description = "周期名称")
    private String cycleStandardName;
    /**
     * 周期开始时间
     */
    @TableField(value = "cycle_start_time")
    @NotNull(message = "周期开始时间不能为空")
    @Schema(description = "周期开始时间")
    private Date cycleStartTime;
    /**
     * 周期结束时间
     */
    @TableField(value = "cycle_end_time")
    @NotNull(message = "周期结束时间不能为空")
    @Schema(description = "周期结束时间")
    private Date cycleEndTime;
    /**
     * 时段计算参照时间结果
     */
    @TableField(value = "time_count_refer_time_result")
    @NotNull(message = "时段计算参照时间结果不能为空")
    @Schema(description = "时段计算参照时间结果")
    private Date timeCountReferTimeResult;
    /**
     * 周期类型实例简称
     */
    @TableField(value = "cycle_number_short_name")
    @Schema(description = "周期类型实例简称")
    private String cycleNumberShortName;
    /**
     * 周期类型实例标识
     */
    @TableField(value = "cycle_type_instance_code")
    @Schema(description = "周期类型实例标识")
    private String cycleTypeInstanceCode;
    /**
     * 周期类型标识
     */
    @TableField(value = "cycle_type_code")
    @NotNull(message = "周期类型标识不能为空")
    @Schema(description = "周期类型标识")
    private String cycleTypeCode;
    /**
     * 是否父周期
     */
    @TableField(value = "is_father_cycle")
    @NotNull(message = "是否父周期不能为空")
    @Schema(description = "是否父周期")
    private String isFatherCycle;
    /**
     * 是否子周期
     */
    @TableField(value = "is_sub_cycle")
    @NotNull(message = "是否子周期不能为空")
    @Schema(description = "是否子周期")
    private String isSubCycle;
    /**
     * 是否中期
     */
    @TableField(value = "is_metaphase")
    @NotNull(message = "是否中期不能为空")
    @Schema(description = "是否中期")
    private String isMetaphase;
    /**
     * 是否工作周期类型编码
     */
    @TableField(value = "is_work_target_cycle")
    @NotNull(message = "是否工作周期类型编码不能为空")
    @Schema(description = "是否工作周期类型编码")
    private String isWorkTargetCycle;
    /**
     * 是否当前周期
     */
    @TableField(value = "is_current_cycle")
    @Schema(description = "是否当前周期")
    private String isCurrentCycle;
    /**
     * 是否下一周期
     */
    @TableField(value = "is_next_cycle")
    @Schema(description = "是否下一周期")
    private String isNextCycle;
    /**
     * 是否开始子周期
     */
    @TableField(value = "is_start_cycle")
    @NotNull(message = "是否开始子周期不能为空")
    @Schema(description = "是否开始子周期")
    private String isStartCycle;
    /**
     * 是否截止子周期
     */
    @TableField(value = "is_end_cycle")
    @NotNull(message = "是否截止子周期不能为空")
    @Schema(description = "是否截止子周期")
    private String isEndCycle;
    /**
     * 是否末级周期
     */
    @TableField(value = "is_last_cycle")
    @NotNull(message = "是否末级周期不能为空")
    @Schema(description = "是否末级周期")
    private String isLastCycle;
    /**
     * 周期类型配置标识
     */
    @TableField(value = "cycle_type_conf_code")
    @NotNull(message = "周期类型配置标识不能为空")
    @Schema(description = "周期类型配置标识")
    private String cycleTypeConfCode;
    /**
     * 排序
     */
    @TableField(value = "order_number")
    @NotNull(message = "排序不能为空")
    @Schema(description = "排序")
    @OrderFlag(orderType = "desc")
    private Long orderNumber;
    /**
     * 主体生命周期
     */
    @TableField(value = "subject_life_cycle")
    @NotNull(message = "主体生命周期不能为空")
    @Schema(description = "主体生命周期")
    private String subjectLifeCycle;
    /**
     * 是否存档
     */
    @TableField(value = "is_archive")
    @NotNull(message = "是否存档不能为空")
    @Schema(description = "是否存档")
    private String isArchive;
    /**
     * 操作人就职记录ID
     */
    @TableField(value = "operation_induction_id")
    @NotNull(message = "操作人就职记录ID不能为空")
    @Schema(description = "操作人就职记录ID")
    private String operationInductionId;
    /**
     * 创建人就职记录ID
     */
    @TableField(value = "create_induction_id")
    @NotNull(message = "创建人就职记录ID不能为空")
    @Schema(description = "创建人就职记录ID")
    private String createInductionId;
    /**
     * 发布人就职记录ID
     */
    @TableField(value = "release_induction_id")
    @Schema(description = "发布人就职记录ID")
    private String releaseInductionId;
    /**
     * 存档人就职记录ID
     */
    @TableField(value = "archive_induction_id")
    @Schema(description = "存档人就职记录ID")
    private String archiveInductionId;
    /**
     * 操作时间
     */
    @TableField(value = "operate_time")
    @NotNull(message = "操作时间不能为空")
    @Schema(description = "操作时间")
    @OrderFlag(orderType = "desc")
    private Date operateTime;
    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @NotNull(message = "创建时间不能为空")
    @Schema(description = "创建时间")
    private Date createTime;
    /**
     * 发布时间
     */
    @TableField(value = "release_time")
    @Schema(description = "发布时间")
    private Date releaseTime;
    /**
     * 存档时间
     */
    @TableField(value = "archive_time")
    @Schema(description = "存档时间")
    private Date archiveTime;
    /**
     * 是否作废
     */
    @TableField(value = "is_valid")
    @NotNull(message = "是否作废不能为空")
    @Schema(description = "是否作废")
    private String isValid;
    /**
     * 创建于空间ID
     */
    @TableField(value = "space_id")
    @NotNull(message = "创建于空间ID不能为空")
    @Schema(description = "创建于空间ID")
    private String spaceId;
    /**
     * 创建于联盟应用ID
     */
    @TableField(value = "app_id")
    @NotNull(message = "创建于联盟应用ID不能为空")
    @Schema(description = "创建于联盟应用ID")
    private String appId;
}
